package springmvc.param.controller;

import jakarta.servlet.ServletContext;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

/**
 * description: 07
 * TODO：使用原生API，可以在形参列表直接调用
 *
 * 1. ServletContext 是原生API，整个 Web 应用程序中共享数据，是最大的共享域。
 * 2. 可以直接全局声明ServletContext对象，用@Autowired 直接从ioc容器获取对应类型实体对象（组件） 并自动装配
 * 3. ServletRequest、ServletResponse 也是原生Api
 */
@Controller
public class ApiController {

    //1. 使用原生对象直接全局注入
    @Autowired
    private ServletContext servletContext;

    //2. 直接在形参列表调用
    public void data(HttpServletResponse response,
                     HttpServletRequest request,
                     HttpSession session){

        //3. 通过request获取 session获取
        ServletContext servletContext = request.getServletContext();
        ServletContext servletContext1 = session.getServletContext();
    }
}
